[AWS] Amazon CloudFrontのキャッシュ無効化(TTL設定)
こんぬづは、昨日飲みの席でインターン時代の先輩から「ドープ」というスラングを教えてもらいました田中です。 "Awesome"とかと同じ感じで「スゲェ」とか「最高」とかの意味らしいです。イケてないのは「ノー ドープ」と言う用法らしいです。
今日はCloudFrontのキャッシュ無効化設定の方法を紹介します。
TTL設定とは
まずTTLというのはTime to liveの省略で、生存期間を示す言葉です。 今回はCloudFrontのキャッシュのTTLなので、CloudFrontのエッジサーバーにキャッシュが保存される期間の設定の話になります。
キャッシュの無効化方法
オリジンサーバーのCache-Controlを設定する
今回の例はEC2上のnode.js/expressで設定。 レスポンスヘッダのCache-Controlにno-cacheか、max-ageを0に設定します。
// index.js var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { // res.header('Cache-Control', 'max-age=0'); res.header('Cache-Control', 'no-cache'); res.render('index', { title: '初めてのリモートサーバー!!!' }); });
CloudFrontのTTLを設定する
該当するCloudFrontを選択してコンソールを開きます。
Behaviorsタブを選択し、設定しているBehaviorにチェックを入れてEditボタンを押します。
Minimum TTL, Maximum TTL, Default TTLをそれぞれ0に設定します。
エッジサーバーのキャッシュを削除する
すぐにキャッシュを削除して無効化を確認するためには以下の記事に書いてある方法で削除したいオブジェクトのキャッシュを選択して削除します。
[AWS] Amazon CloudFrontのキャッシュ削除(Invalidation) | Developers.IO
まとめ
開発デバッグの時はキャッシュが邪魔になることがあるので、ちょうど調べました。
TTLとか知らなかったです。(なんだそのPPAPみたいなのはと思った) AWSとかネットワークやセキュリティは省略語が多くてとっつきにくく感じてしまいますね; でも言葉の定義を調べると意味としてはシンプルなものが多いので慣れな気もしました、頑張ります。